/**  
 * All rights Reserved, Designed By www.beonelot.com
 * @Package: com.bccah.modlib.dbdo.mapper.DO
 * @Filename: AcsControlUserInfoDO.java
 * @Description: TODO(ACS_CONTROL_USER_INFO表对象)
 * @author: 金鑫智慧
 * @date: 2020-04-08
 * @version: V1.0
 * @Copyright: 2018 www.beonelot.com Inc. All rights reserved.
 * 注意：本内容仅限于重庆金鑫智慧科技有限公司内部传阅，禁止外泄以及用于其他的商业目的
 */
package com.jinxin.platform.cdacsrecord.core.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.jinxin.platform.cdacsrecord.core.pojo.domains.AcsControlDeviceInfo;
import com.jinxin.platform.cdacsrecord.core.pojo.domains.AcsControlUserMethodDO;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.List;

/**
 * TODO(ACS_CONTROL_USER_INFO表对象)
 * @Classn: AcsControlUserInfoDO
 * @author SY
 * @date 2020-04-08
 */
@Data
public class AcsControlUserInfoVO {

    private static final long serialVersionUID = 1L;

    private String userId;

    /**
     * 人员类型 1业主 2家属 3物业 4职员 5访客  6其他
     */
    @NotBlank(message = "人员类型不能为空")
    private String userType;

    /**
     * 姓名
     */
    @NotBlank(message = "人员姓名不能为空")
    private String userName;

    /**
     * 证件类型 1身份证 2护照  3驾照  4其他
     */
    private String userCardType;

    /**
     * 证件id
     */
    private String userCard;

    /**
     * 电话
     */
    @NotBlank(message = "电话不能为空")
    private String userPhone;

    /**
     * 房间ID
     */
    @NotBlank(message = "房间ID不能为空")
    private String userRoomId;

    /**
     * 房间名称
     */
    @NotBlank(message = "房间名称不能为空")
    private String userRoomName;

    /**
     * 楼栋ID
     */
    @NotBlank(message = "楼栋ID不能为空")
    private String userBlockId;

    /**
     * 楼栋名称
     */
    @NotBlank(message = "楼栋名称不能为空")
    private String userBlockName;

    /**
     * 脸部信息
     */
    private String userFaceInfo;

    /**
     * 指纹信息
     */
    private String userFingerprint;

    /**
     * 门禁卡信息
     */
    private String userDoorCard;
    /**
     * 用户支持的访客方式
     */
    private List<AcsControlUserMethodDO> userMethodDOList;

    /**
     * 添加时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    private LocalDateTime createTime;

    /**
     * 状态 0正常
     */
    private String state;

    /**
     * 用户添加的设备
     */
    private List<AcsControlDeviceInfo> deviceList;

    /**
     * 小区id
     */
    private String companyId;
    /**
     * 性别1男2女
     */
    private Integer gender;
    /**
     * 父id
     */
    private String parentId;
    /**
     * 人户一致(0人户一致、1人户分离、2流动人口)
     */
    private Integer hushaiConsistent;
    /**
     * 人户关系(0父母、1子女、2亲属、3朋友、4租客）
     */
    private Integer familyRelationship;
    /**
     * 党籍（0党员、1群众、2其他）
     */
    private Integer partyMembership;
    /**
     * 年龄
     */
    private Integer age;

}
